M y S Q L - Structured Query Language
8. zeilen bearbeiten
8.4 besondersheiten
8.4.1 zeichensatz festlegen
Daten, die in einer DB-tabelle gespeichert werden, stammen aus verschiedenen
quellen;
- aus einer datei, die von der seite eingelesen wird, mit der die zeilen
einer DB-tabelle
erzeugt oder geändert werden;
- aus einem formular, mit dem die daten erfaßt werden;
- direkt aus der seite, mit der die DB-tabelle bearbeitet wird.
Für die speicherung ist der zeichensatz der daten von großer bedeutung. In der regel ist das Ansicode oder Unicode. In der HTML-beschreibung wird ausgeführt, dass der zeichensatz, mit dem eine seite erstellt wird und der zeichensatz, der im header der seite vereinbart wird der gleiche sein sollte (HTML-beschreibung 2.5 und 9.9). Nur so ist eindeutig festgelegt, mit welchem zeichensatz eine seite arbeitet, d.h. daten ausgibt und darstellt. Vertieft wird diese information in der PHP -beschreibung (ziffer 8.9). Bei MySQL kommt jetzt hinzu, dass man festlegen muss, mit welchem zeichensatz die daten in der datenbank gespeichert werden.
vereinbarung im header einer seite
bei HTML4 gibt es folgende anweisung, die heute aaber veraltet ist
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252 | iso-8859-1 | utf-8">
Ab HTML5 verwendet man:
<meta charset="iso-8859-1 | utf-8">
windows-1252 iso-8859-1 | Ansicode |
utf-8 | Unicode |
zeichensatz für datenbank festlegen
Das geschieht mit der anweisung CREATE TABLE (vgl. 7.1)
ENGINE=MyISAM DEFAULT CHARSET=latin1 | utf8
latin1 | Ansicode |
utf8 | Unicode |
8.4.2 probleme mit zeichensätzen
Die beiden zeichensätze Ansicode und Unicode unterscheiden sich nur bei der
codierung von geschlossenen umlauten und einigen sonderzeichen
(?, €, §, °, ², ³, µ); während im Ansicode alle zeichen mit einem byte
verschlüsselt sind, verwendet der Unicode bei den genannten zeichen zwei
bytes. Wenn man konsequent(auch bei den eingabedaten) den gleichen
zeichensatz verwendet, sollte es eigentlich keine probleme geben. Leider
stimmt das nicht, zudem treten die probleme recht uneinheitlich auf, ob das
versions- oder herstellerabhängig ist war nicht zu klären.
probleme mit Unicode
Liegen die daten im Unicode vor und wird dieser zeichensatz auch für die
DB-tabelle vereinbart, gibt es keine probleme, die speziellen zeichen werden
mit zwei bytes gespeichert, seltsamerweis auch dann, wenn man mit der
anweisung Create Table Ansicode vereinbart. Bei der dimensionierung
der spalten muss man natürlich berücksichtigen, dass bestimmte zeichen zwei
bytes platz benötigen. Es gibt nur einen schönheits-fehler: das weit
verbreitete programm für die verwaltung einer datenbank phpmyadmin
stellt die zwei-bytes-zeichen nicht richtig dar, sondern zeigt ziemlich
kryptische zeichenfolgen.
probleme mit Ansicode
Liegen die daten im Ansicode vor, funktioniert es manchmal richtig, selbst
dann, wenn für die datenbank Unicode vereinbart wird. Meist aber geht es
schief, d.h. die o.g. zeichen werden entweder als fragezeichen oder auch
gar nicht gespeichert.
8.4.3 zeichen maskieren
Alle probleme mit den geschlossenen umlauten und den sonderzeichen kann man
umgehen, wenn man diese zeichen maskiert (siehe HTML-beschreibung 2.5).
Allerdings muss man dann die spalten der DB-tabelle entsprechend groß
machen, denn die maskierten zeichen benötigen viel platz, beispielsweise
besteht ein maskiertes Ä aus 6 zeichen: & A u m l ;
codes, maskierung
H T M L |
C S S |
P H P |
my sql |
JAVASCRIPT |
impressum
Für den inhalt der homepage hartard-bernhard.de
ist im sinne des pressegesetzes verantwortlich:
Bernhard Hartard
Gerhart-Hauptmann-Ring 18
81737 München
089 / 670 39 90
familie.hartard@t-online.de
salvatorische erklärung
Die seiten meiner homepage enthalten links
zu anderen seiten im Internet, auf deren gestaltung und inhalt ich
keinen einfluss habe. Ich übernehme keine gewähr für den inhalt der
verlinkten seiten, rechtsverstöße waren für mich zum zeitpunkt der
verlinkung auf diesen seiten nicht erkennbar, eine ständige inhaltliche
kontrolle der verlinkten seiten ist mir weder möglich noch zumutbar.
Aus rechtlichen gründen distanziere ich mich ausdrücklich vom inhalt
der verlinkten seiten und mache mir deren inhalt nicht zu eigen.
Diese erklärung gilt für alle auf meinen seiten angezeigten links.
CLOSE anzeige schließen
start
Damit startet die homepage neu, d.h. der Steinbeisser treibt wieder sein unwesen.
anfang
Hier beginnen die informationen dieser homepage
zur person
Hier findet man informationen zur person des verfassers dieser homepage, wer er ist, woher er kommt, was er gelernt hat und was er im verlauf seines lebens so getrieben hat.
spiele
Hier finden man einige spiele, aber keine wüsten ballerspiele, sondern einige echte knobeleien (hirn-jogging), zwei gesellschaftsspiele (Mensch ärgere Dich nicht, Kniffel) und das spiel aller frechen schüler: schiffe versenken.
galerien
Ein wenig heimatliebe muss erlaubt sein und deshalb findet man hier einige bildergalerien von Speyer und von seinem Dom.
backbuch
Das ist eine sammlung von backrezepten, aus verschiedenen quellen zusammengetragen und fast alle mit mehr oder weniger erfolg ausprobiert. Da findet man in den endlosen weiten des Internet natürlich mehr und besseres.
stammbaum
Das gehört eigentlich in den privaten bereich dieser homepage, denn hier wird der stammbaum des verfassers der homepage gezeigt. Weil aber beim testen der anwendung auch der stammbaum der Wittelsbacher entstanden ist, wurde beides hier veröffentlicht. Vielleicht interessiert es jemand.
exit
Hier kann man Google oder eine beliebige seite im Internet aufrufen oder diese homepage verlassen.
kontakt
Hier kann man dem verfasser und eigentümer der homepage eine email schreiben.
privat
Hier kommt man in den privaten bereich der homepage, besser gesagt, man kommt da nicht hinein, denn dieser bereich ist geschützt und nur dem eigentümer der homepage zugänglich.
doku
Hier sind die programmiertechniken dokumentiert, mit deren hilfe die homepage gebastelt wurde. Genauer gesagt man findet hier kurz gefasste bechreibungen von HTML, CSS, MySQL und Javascript. Das findet man im Internet natürlich viel ausführlicher aber für einen ersten einstieg in die seltsame welt der programmierung sind diese beschreibungen durchaus brauchbar.